#阻塞与非阻塞对比
from multiprocessing import Pool
import os
import time
import random#用来生成随机数

def test1(name):
    print("%s运行中，pid=%d，父进程：%d"%(name,os.getpid(),os.getppid()))
    t_start=time.time()
    #random.random()会生成一个0——1的浮点数
    time.sleep(random.random()*3)
    t_end=time.time()
    print("%s执行时间：%0.2f秒"%(name,t_end-t_start))

pool=Pool(5)#设置线程池中最大线程数量为5
for xx in range(0,7):
    #非阻塞运行
    pool.apply_async(test1,("mark"+str(id),))
print("--start1--")
pool.close()#关闭线程池，关闭后不再接受进的请求
pool.join()#等待进程池所有进程都执行完毕后，开始执行下面语句
print("--end1--")
print("*"*30)
pool=Pool(5)#设置线程池中最大线程数量为5
for xx in range(0,7):
    #阻塞运行
    pool.apply(test1,("mark"+str(id),))
print("--start2--")
pool.close()#关闭线程池，关闭后不再接受进的请求
pool.join()#等待进程池所有进程都执行完毕后，开始执行下面语句
print("--end2--")